--- contrib/isf-qt/src/isfqt.cpp.orig	2014-06-11 13:10:43.137321400 +0000
+++ contrib/isf-qt/src/isfqt.cpp	2014-06-11 13:12:23.123474616 +0000
@@ -249,7 +249,7 @@
     qWarning() << "Couldn't initialize GIF library!";
   }
 
-  DGifCloseFile( gifImage );
+  DGifCloseFile( gifImage, NULL );
   gifData.close();
 */
 
@@ -484,12 +484,13 @@
   int             width     = isfImage.width();
   int             numColors = 0;
   bool            gifError  = true;
+  int             gifErrCode;
 
   // Convert the image to GIF using libgif
 
   // Open the gif file
   gifData.open( QIODevice::WriteOnly );
-  gifImage = EGifOpen( (void*)&gifData, GifWriteToByteArray );
+  gifImage = EGifOpen( (void*)&gifData, GifWriteToByteArray, &gifErrCode );
   if( gifImage == 0 )
   {
     qWarning() << "Couldn't initialize gif library!";
@@ -503,7 +504,7 @@
     numColors = 256;
   }
 
-  cmap = MakeMapObject( numColors, NULL );
+  cmap = GifMakeMapObject( numColors, NULL );
   if( cmap == 0 && isfImage.numColors() > 1 )
   {
     qWarning() << "Couldn't create map object for gif conversion (colors:" << isfImage.numColors() << ")!";
@@ -576,7 +577,7 @@
   else
   {
     // Write the extension
-    if( EGifPutExtensionFirst( gifImage, COMMENT_EXT_FUNC_CODE, MAX_GIF_BYTE, isfData.left( MAX_GIF_BYTE ).data() ) == GIF_ERROR )
+    if( EGifPutExtensionLeader( gifImage, COMMENT_EXT_FUNC_CODE) == GIF_ERROR )
     {
       qWarning() << "EGifPutExtensionFirst failed!";
       goto writeError;
@@ -590,9 +591,9 @@
     // Write all the full data blocks
     while( length >= MAX_GIF_BYTE )
     {
-      if( EGifPutExtensionNext( gifImage, 0, MAX_GIF_BYTE, isfData.mid( pos, MAX_GIF_BYTE ).data() ) == GIF_ERROR )
+      if( EGifPutExtensionBlock( gifImage, MAX_GIF_BYTE, isfData.mid( pos, MAX_GIF_BYTE ).data() ) == GIF_ERROR )
       {
-        qWarning() << "EGifPutExtensionNext failed!";
+        qWarning() << "EGifPutExtensionBlock failed!";
         goto writeError;
       }
 
@@ -603,17 +604,17 @@
     // Write the last block
     if( length > 0 )
     {
-      if( EGifPutExtensionLast( gifImage, 0, length, isfData.mid( pos, MAX_GIF_BYTE ).data() ) == GIF_ERROR )
+      if( EGifPutExtensionTrailer( gifImage ) == GIF_ERROR )
       {
-        qWarning() << "EGifPutExtensionLast (n) failed!";
+        qWarning() << "EGifPutExtensionTrailer (n) failed!";
         goto writeError;
       }
     }
     else
     {
-      if( EGifPutExtensionLast( gifImage, 0, 0, 0 ) == GIF_ERROR )
+      if( EGifPutExtensionTrailer( gifImage ) == GIF_ERROR )
       {
-        qWarning() << "EGifPutExtensionLast (0) failed!";
+        qWarning() << "EGifPutExtensionTrailer (0) failed!";
         goto writeError;
       }
     }
@@ -623,13 +624,13 @@
 
 writeError:
   // Clean up the GIF converter etc
-  EGifCloseFile( gifImage );
-  FreeMapObject( cmap );
+  EGifCloseFile( gifImage, NULL );
+  GifFreeMapObject( cmap );
   gifData.close();
 
   if( gifError )
   {
-    qWarning() << "GIF error code:" << GifLastError();
+    qWarning() << "GIF error code:" << GifErrorString(gifErrCode);
   }
   else
   {
